package com.fanshuai2.niuke.strings;

import java.util.*;

/**
 * 考试题目和要点：
 *
 * 1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。
 *
 * 2、中文大写金额数字到“元”为止的，在“元”之后，应写“整字，如532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。
 *
 * 3、阿拉伯数字中间有“0”时，中文大写要写“零”字，阿拉伯数字中间连续有几个“0”时，中文大写金额中间只写一个“零”字，如6007.14，应写成“人民币陆仟零柒元壹角肆分“。
 * 4、10应写作“拾”，100应写作“壹佰”。例如，1010.00应写作“人民币壹仟零拾元整”，110.00应写作“人民币壹佰拾元整”
 * 5、十万以上的数字接千不用加“零”，例如，30105000.00应写作“人民币叁仟零拾万伍仟元整”
 *
 * 输入：
 * 151121.15
 * 输出：
 * 人民币拾伍万壹仟壹佰贰拾壹元壹角伍分
 */
public class RMBNumber {
    static String zero = "零";
    static String shi = "拾";
    static String bai = "佰";
    static String qian = "仟";

    static String[] ones = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
    static String[] powers = {"", "万", "亿", "万"};

    static String getJiao(String jiao) {
        String s = "";
        char ch1 = jiao.charAt(0);
        char ch2 = jiao.charAt(1);
        if (ch1 != '0') {
            s += ones[ch1 - '0'] + "角";
        }
        if (ch2 != '0') {
            s += ones[ch2 - '0'] + "分";
        }
        return s;
    }

    static String getYuan(String yuan) {
        long l = Long.valueOf(yuan);

        StringBuilder b = new StringBuilder();
        int power = 0;
        while (l > 0) {
            if (power > 0) {
                b.append(powers[power]);
            }

            int temp = (int) l % 10000;
            int n1 = temp % 10;
            int n2 = temp / 10 % 10;
            int n3 = temp / 100 % 10;
            int n4 = temp / 1000 % 10;

            if (n1 != 0) {
                b.append(ones[n1]);
            }
            if (n2 != 0) {
                b.append(shi);
                if (n2 > 1) {
                    b.append(ones[n2]);
                }
            } else {
                if (n1 != 0 && (temp > 99 || (int) l > 10000)) {
                    b.append(zero);
                }
            }
            if (n3 != 0) {
                b.append(bai);
                b.append(ones[n3]);
            } else {
                if (n2 != 0 && (temp > 999 || (int) l > 10000)) {
                    b.append(zero);
                }
            }
            if (n4 != 0) {
                b.append(qian);
                b.append(ones[n4]);
            } else {
                if (n3 != 0 && (int) l > 10000) {
                    b.append(zero);
                }
            }

            l /= 10000;
            power++;
            if (power > 2) {
                power = 1;
            }
        }
        return b.reverse().toString();
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        while (in.hasNext()) {
            String s = in.next();
            String[] arr = s.split("\\.");

            String out = "人民币";
            if (arr[1].equals("00")) {
                out += getYuan(arr[0]) + "元整";
            } else if (arr[0].equals("0")) {
                out += getJiao(arr[1]);
            } else {
                out += getYuan(arr[0]) + "元" + getJiao(arr[1]);
            }
            System.out.println(out);
        }
    }
}
